// import { el } from 'element-plus/lib/locale';
// import Mock from 'mockjs'
import Mock, { mock } from 'mockjs'


// 通知类型列表请求数据
var alertdata = Mock.mock({
    "alertlist": [
        {
            id: 1,
            alerttype: '通知',
            property: '内置',
            statu: '启用',
        },
        {
            id: 2,
            alerttype: '公告',
            property: '内置',
            statu: '启用',
        },
        {
            id: 3,
            alerttype: '活动',
            property: '内置',
            statu: '启用',
        },
        {
            id: 4,
            alerttype: '家园任务',
            property: '内置',
            statu: '启用',
        },
        {
            id: 5,
            alerttype: '缴费通知',
            property: '内置',
            statu: '启用',
        },
        {
            id: 6,
            alerttype: '选课通知',
            property: '内置',
            statu: '启用',
        },
    ]
})
// 通知类型列表请求
Mock.mock('/api/alerttype/list', 'get', () => {
    return alertdata;
})

// 通知类型列表请求删除
Mock.mock('/api/alerttype/delete', 'post', (req) => {
    // 接收参数，req.body是字符串格式，需要转为json对象
    var { id } = JSON.parse(req.body)

    // 通过id，找到要删除的那一条数据，执行删除
    var i = alertdata.alertlist.findIndex((item) => {
        return item.id == id;
    })
    if (i != -1) {
        alertdata.alertlist.splice(i, 1);
        localStorage.setItem('alertlist', JSON.stringify(alertdata))
    }
    return { status: 200, msg: '删除成功！', alertlist: alertdata.alertlist };
})


// 通知类型列表请求状态修改停用/启用
Mock.mock('/api/alerttype/edit', 'post', (req) => {
    // 接收参数，req.body是字符串格式，需要转为json对象
    var body = JSON.parse(req.body)
    console.log(body);
    // 通过id，找到要删除的那一条数据，执行删除
    var i = alertdata.alertlist.findIndex((item) => {
        return item.id == body.id;
    })
    if (i != -1) {
        if (body.statu == '停用') {
            body.statu = '启用'
        } else {
            body.statu = '停用'
        }
        alertdata.alertlist.splice(i, 1, body);
        console.log(body);
        localStorage.setItem('alertlist', JSON.stringify(alertdata))
    }
    return { status: 200, msg: '删除成功！', alertlist: alertdata.alertlist };
})


// 通知类型列表请求添加
Mock.mock('/api/alerttype/add', 'post', (req) => {
    // 接收参数，req.body是字符串格式，需要转为json对象
    var body = JSON.parse(req.body)
    console.log(body);
    // 拿到要添加的这个类型的在已存储的数据进行比较是否已存在
    const id = body.id
    let flag = true
    for (const item of alertdata.alertlist) {
        if (item.id === id) flag = false
    }
    if (flag) {
        alertdata.alertlist.push(body);
        localStorage.setItem('alertlist', JSON.stringify(alertdata))
    }
    return { status: 200, msg: '添加成功！', alertlist: alertdata.alertlist };
})

// 通知类型列表请求改变状态
// Mock.mock('/api/alerttype/add', 'post', (req) => {
//     // 接收参数，req.body是字符串格式，需要转为json对象
//     var body  = JSON.parse(req.body)
//     const id = body.id
//     // 通过id，找到要修改的那一条数据，执行修改
//     var item = alertdata.alertlist.find((item) => {
//         return item.id == id;
//     })

//     if (item.statu == '启用') {
//         alertdata.alertlist.splice(i,1,body);
//         localStorage.setItem('alertlist', JSON.stringify(alertdata))
//     }else if(item.statu == '停用'){
//         alertdata.alertlist.splice(i,1,body);
//         localStorage.setItem('alertlist', JSON.stringify(alertdata))
//     }
//     return { status: 200, msg: '修改成功！', alertlist: alertdata.alertlist };
// })


// 通知列表数据
var alertlistdata = Mock.mock({
    "list|6": [
        {
            'id|+1': 1,
            'name|1': ['关于防控疫情的通知', '高温橙色预警通知', '关于2022年暑期活动通知', '2022学年第一学期家园任务', '2022学年第一学期缴纳班费通知'],//通知标题
            'region|1': ['通知', '公告', '活动', '家园任务'],//通知类型
            date1: '@date(yyyy-MM-dd)',//发布时间
            'type|1': ['学生', '老师', '家长'],//发布对象
            resource: '全校',//发布范围
            desc: '“书香润泽校园 阅读提升思想”“我阅读 我快乐 我成长”',//通知内容
        },
    ]
})

// 通知列表请求
Mock.mock('/api/alert/list', 'get', () => {
    return alertlistdata;
})

// 通知列表查询
Mock.mock('/api/alert/search', 'post', (req) => {
    // 接收参数，req.body是字符串格式，需要转为json对象
    var { region } = JSON.parse(req.body)

    // 通过id，找到要删除的那一条数据，执行删除
    var item = alertlistdata.list.find((item) => {
        return item.region == region;
    })
    var newlist = [];
    console.log(item);
    if (item != ' ') {
        alertlistdata.list.filter((item) => {
            if ((item.region).includes(region)) {
                newlist.push(item)
                return;
            }
        })
        alertlistdata.list = newlist;
        var item = JSON.stringify(item)
        return { status: 200, msg: '查询成功！', list: alertlistdata.list };
    }
})

// 通知列表请求删除
Mock.mock('/api/alert/delete', 'post', (req) => {
    // 接收参数，req.body是字符串格式，需要转为json对象
    console.log(req);
    var { id } = JSON.parse(req.body)

    console.log(id);
    // 通过id，找到要删除的那一条数据，执行删除
    var i = alertlistdata.list.findIndex((item) => {
        return item.id == id;
    })
    console.log(i);
    if (i != -1) {
        alertlistdata.list.splice(i, 1);
        localStorage.setItem('list', JSON.stringify(alertlistdata))
    }
    return { status: 200, msg: '删除成功！', list: alertlistdata.list };
})

// 通知列表请求添加
Mock.mock('/api/alert/add', 'post', (req) => {
    // 接收参数，req.body是字符串格式，需要转为json对象
    var body = JSON.parse(req.body)
    console.log(body);
    // 拿到要添加的这个类型的在已存储的数据进行比较是否已存在
    const id = body.id
    let flag = true
    for (const item of alertlistdata.list) {
        if (item.id === id) flag = false
    }
    if (flag) {
        alertlistdata.list.push(body);
        localStorage.setItem('list', JSON.stringify(alertlistdata))
    }
    return { status: 200, msg: '添加成功！', alertlistdata: alertlistdata.list };
})


// 评价列表数据
var evaluatelist = Mock.mock({
    "evallist|10": [
        {
            'id|+1': 1,
            name: '@name',//学生姓名
            grade: '一年级一班',//年级班级
            type: '一年级一班',//评价类型
            content: '字迹工整，按时完成',//评价类型
            score: '+1',//分值
            people: '杨老师',//分值
            date1: '@date(yyy-MM-dd)',//发布时间
        }
    ]
})


// 评价列表请求
Mock.mock('/api/evaluate/list', 'get', () => {
    return evaluatelist;
})



// ·································································································
//局校通知
let data = Mock.mock({
    'list|10': [
        {
            'id|+1': 1,
            'title|1': ['关于防控疫情的通知', '高温橙色预警通知', '关于2022年暑期活动通知', '2022学年第一学期家园任务', '2022学年第一学期缴纳班费通知', '2022学年第一学期选课通知', '2022学年第一学期高中学段选课通知', '考试通知', '放假通知', '放假通知'],
            content: "为满足广大家长需求、解决学生暑期“看护难”问题，进一步巩固“双减”成效，帮助学生度过一个安全、快乐、有意义的假期，积极营造全社会协同育人良好氛围，根据《教育部办公厅关于支持探索开展暑期托管服务的通知》（教基厅函〔2021〕30号）、《浙江省教育厅等九部门关于进一步做好义务教育阶段学校课后服务工作的实施意见》（浙教基〔2021〕38号）、《丽水市教育局等九部门关于进一步做好义务教育阶段学校课后服务工作的实施意见》（丽教基〔2021〕73号）精神，现就做好2022年义务教育阶段学校暑期托管服务工作有关事项通知。",
            scope: '全部学校',
            'sendto|1': ['学生', '老师', '家长'],
            name: '@cname',
            datatime: '@date(yyyy-MM-dd HH:mm:ss)',
        }
    ]
})


//局校通知生成列表数据
Mock.mock('/api/inform/list', 'get', () => {
    return data;
})

//局校通知删除数据
Mock.mock('/api/inform/delete', 'post', (req) => {
    let { id } = JSON.parse(req.body)
    let i = data.list.findIndex((item) => {
        return item.id == id
    })
    if (i != -1) {
        data.list.splice(i, 1);
    }
    return { code: 200, msg: '删除成功', list: data.list }
})

//局校通知添加数据
Mock.mock('/api/inform/add', 'post', (req) => {
    let newdata = JSON.parse(req.body)
    data.list.push(newdata)
    console.log('mock', data.list)
    return { code: 200, msg: '添加成功' }
})

//局校通知查询数据
Mock.mock('/api/inform/search', 'post', (req) => {
    let searchText = req.body

    return { code: 200, msg: '查询成功' }
})

// 考勤中心
let dutydata = Mock.mock({
    'list|3': [
        {
            id: '@id',
            classgrade: '一年级一班',
            studentname: "@cname",
            'sex|1': false,
            todystatus: '正常',
            'phone|13000000000-19999999999': 1,
        }
    ]
})

//考勤中心生成列表数据
Mock.mock('/api/duty/list', 'get', () => {
    return dutydata;
})

// 考勤中心统计
let totaldata = Mock.mock({
    'list': [
        {
            grade: '一年级',
            total: 3,
            arrival: 3,
            lateNumber: 3,
            vacationNumber: 0,
            rate: '100%'
        },
        {
            grade: '二年级',
            total: 4,
            arrival: 4,
            lateNumber: 0,
            vacationNumber: 0,
            rate: '100%'
        },
        {
            grade: '三年级',
            total: 5,
            arrival: 5,
            lateNumber: 0,
            vacationNumber: 0,
            rate: '100%'
        }]
})

Mock.mock('/api/duty/total', 'get', () => {
    return totaldata;
})

// 设备报修
let repairdata = Mock.mock({
    'list|5': [
        {
            'id|+1': 1,
            'content|1': ['一年级2班教室板凳桌椅损坏', '二年级3班空调不制冷', '二年级2班桌椅报修', '三年级2班教室电灯不亮报修'],
            "accepter|1": ['王主任', '李老师'],
            'name|1': ['张老师', '刘老师'],
            data: ' @date(yyyy-MM-dd HH:mm:ss)',
            'status|1': ['待受理', '待验收', '已验收'],
            operation: '撤销'
        }
    ]
})

//设备报修
Mock.mock('/api/repair/list', 'get', () => {
    return repairdata;
})

//设备报修删除数据
Mock.mock('/api/repair/delete', 'post', (req) => {
    let { id } = JSON.parse(req.body)
    let i = data.list.findIndex((item) => {
        return item.id == id
    })
    if (i != -1) {
        data.list.splice(i, 1);
    }
    return { code: 200, msg: '删除成功', list: data.list }
})

//设备报修添加数据
Mock.mock('/api/repair/add', 'post', (req) => {
    let newdata = JSON.parse(req.body)
    data.list.push(newdata)
    return { code: 200, msg: '添加成功' }
})
// ···································································································

// 评价列表删除
Mock.mock('/api/evaluate/delete', 'post', (req) => {
    // 接收参数，req.body是字符串格式，需要转为json对象
    console.log(req);
    var { id } = JSON.parse(req.body)

    console.log(id);
    // 通过id，找到要删除的那一条数据，执行删除
    var i = evaluatelist.evallist.findIndex((item) => {
        return item.id == id;
    })
    console.log(i);
    if (i != -1) {
        evaluatelist.evallist.splice(i, 1);
        localStorage.setItem('evallist', JSON.stringify(evaluatelist))
    }
    return { status: 200, msg: '删除成功！', evallist: evaluatelist.evallist };

})


// ------------------------------------




// 消息发布列表 生成发布列表随机数据
var Random = Mock.Random
Random.ctitle(2, 3);
Mock.mock('@ctitle');
var data1 = {};
if (localStorage.getItem('message_list')) {
    data1 = JSON.parse(localStorage.getItem('message_list'))
} else {
    data1 = Mock.mock({
        'Messagelist|10': [
            {
                function: '@ctitle',
                'quantity|0-30': 1,
                'proportion|0-30': 1,
            }
        ]
    })
    //保存数据到本地存储
    localStorage.setItem('message_list', JSON.stringify(data1))
}

// 查询接口
Mock.mock('/api/user/Messagelist', 'get', () => {
    // 返回数据
    return data1;
})

// 学校月消息发布列表
var data2 = Mock.mock({
    'schoolNews|10': [
        {
            Region: '@county(true)',//地区
            school: '@region(true)' + '大学', //学校名称
            'Total|1-120': 1,
            'Inform|1-100': 1,
            'Notice|1-50': 1,
            'Activity|1-10': 1,
            'Hometask|1-5': 1,
            'Debitnote|0-20': 1,
            'SelectionNotice|0-30': 1,
            'Homework|0-30': 1,
            'Leave|0-30': 1,
            'Publishalbum|0-30': 1,
            'elaluate|0-30': 1,
            'vote|0-30': 1,
            'hint|0-20': 1,
        }
    ]
})
//保存数据到本地存储
localStorage.setItem('school_News', JSON.stringify(data2))
Mock.mock('/api/user/schoolNews', 'get', () => {
    // 返回数据
    return data2;
})

//老师月消息发布列表
var data3 = {}
if (localStorage.getItem('teacher_news')) {
    data3 = JSON.parse(localStorage.getItem('teacher_news'))
} else {
    data3 = Mock.mock({
        'teacherNews|10': [
            {
                teachername: '@cname', //姓名
                school: '@region(true)' + '大学', //学校
                // 'Total|1-120': 1,//合计
                'Inform|1-100': 1,
                'Notice|1-50': 1,
                'Activity|1-10': 1,
                'Hometask|1-5': 1,
                'Debitnote|0-20': 1,
                'SelectionNotice|0-30': 1,
                'Homework|0-30': 1,
                'Leave|0-30': 1,
                'Publishalbum|0-30': 1,
                'elaluate|0-30': 1,
                'vote|0-30': 1,
                'hint|0-20': 1,
            }
        ]
    })
    //保存数据到本地存储
    localStorage.setItem('teacher_news', JSON.stringify(data3))
}
Mock.mock('/api/user/teacherNews', 'get', () => {
    // 返回数据
    return data3;
})

// 家长列表
Random.extend({
    relation: function (date) {
        var relation = ['父亲', '母亲']
        return this.pick(relation)
    }
})
Random.relation()
Mock.mock('@relation')
var data4 = {};
if (localStorage.getItem('parents_List')) {
    data4 = JSON.parse(localStorage.getItem('parents_List'))
} else {
    data4 = Mock.mock({
        'parentsList|10': [
            {
                school: '@region(true)' + '大学', //学校
                parentName: '@cname',//家长姓名
                contact: /^1[3-9]\d{9}$/,//联系方式
                studentname: '@cname', //关联学生
                relation: '@relation', //与学生关系
                account: /^156\d{8}$/,//账号
            }
        ]
    })
}

//保存数据到本地存储
localStorage.setItem('parents_List', JSON.stringify(data4))
Mock.mock('/api/user/parentsList', 'get', () => {
    // 返回数据
    return data4;
})

//定义Random扩展方法
Random.extend({
    // 性别
    sex: function (date) {
        var sex = ['男', '女']
        return this.pick(sex)
    },
    // 职位
    position: function (data) {
        var position = ['教师', '班主任', '教导主任']
        return this.pick(position)
    },
    // 所属部门
    department: function (data) {
        var department = ['语文组', '数学组', '英语组', '化学组', '物理组', '音乐组', '美术组']
        return this.pick(department)
    },
    //年级班级
    gradeclass: function (data) {
        var gradeclass = ['一年级一班', '一年级二班', '一年级三班']
        return this.pick(gradeclass)
    }
})

Random.sex()
Mock.mock('@sex') //性别
Random.position()
Mock.mock('@position') //职位
Random.department()
Mock.mock('@department') //所属部门
Random.gradeclass()
Mock.mock('@gradeclass') //年级班级
// 老师列表
var data5 = {}
if (localStorage.getItem('teacher_List')) {
    data5 = JSON.parse(localStorage.getItem('teacher_List'))
} else {
    data5 = Mock.mock({
        'teacherList|10': [
            {
                school: '@region(true)' + '大学', //学校
                teacherName: '@cname', //老师姓名
                sex: '@sex',   //性别
                jobNum: /^201\d{5}/, //工号
                department: '@department',
                subject: '语文',
                position: '@position',  //现任职务
                account: /^156\d{8}$/,//账号
            }
        ]
    })
    //保存数据到本地存储
    localStorage.setItem('teacher_List', JSON.stringify(data5))
}

Mock.mock('/api/user/teacherList', 'get', () => {
    // 返回数据
    return data5;
})

//学生列表
var data6 = {}
if (localStorage.getItem('student_List')) {
    data6 = JSON.parse(localStorage.getItem('student_List'))
} else {
    data6 = Mock.mock({
        'studentList|10': [
            {
                school: '@region(true)' + '大学', //学校
                gradeclass: '@gradeclass', //年级班级
                studentname: '@cname', //学生姓名
                sex: '@sex', //性别
                studentCode: /^201\d{5}$/, //学籍号
                idType: '身份证',// 证件类型
                idNumber: /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, //证件号码 
                account: /^156\d{8}$/,//账号
            }
        ]
    })
    //保存数据到本地存储
    localStorage.setItem('student_List', JSON.stringify(data6));
}

Mock.mock('/api/user/studentList', 'get', () => {
    // 返回数据
    return data6;
})

//用户概况
var data7 = {}
if (localStorage.getItem('userPro_file')) {
    data7 = JSON.parse(localStorage.getItem('userPro_file'));
} else {
    var data7 = Mock.mock({
        'userProfile|10': [
            {
                Region: '@county(true)',//地区
                school: '@region(true)' + '大学', //学校
                typeSchool: '大学', //学校类型
                'teacherNum|0-2000': 1, //老师人数
                'studentNum|0-500000': 1, //学生人数
                'parentsNum|2000-20000': 1 //家长人数
            }
        ]
    })
    //保存数据到本地存储
    localStorage.setItem('userPro_file', JSON.stringify(data7));
}

Mock.mock('/api/user/userProfile', 'get', () => {
    // 返回数据
    return data7;
})

//学校概览
var data8 = {}
if (localStorage.getItem('school_Overview')) {
    data8 = JSON.parse(localStorage.getItem('school_Overview'));
} else {
    data8 = Mock.mock({
        'schoolOverview|10': [
            {
                id: '@id',
                school: '@region(true)' + '大学', //学校
                schoolCode: '#2111',
                Typeschool: '大学',
                whschool: '公办',
                Region: '@county(true)',//地区
            }
        ]
    })
    //保存数据到本地存储
    localStorage.setItem('school_Overview', JSON.stringify(data8));
}

Mock.mock('/api/user/schoolOverview', 'get', () => {
    // 返回数据
    return data8;
})
